package com.Maykk.StudentManager;

import java.util.ArrayList;

/**
 * @ClassName: StuController
 * @Description: TODO 控制器层
 * @Author: MaykkStar@163.com
 */
public class StuController {
    StuModel sm = new StuModel();

    /**
     * 开始
     *
     * @param a 选择功能
     */

    public void action(int a) {
        switch (a) {
            case 1: // 查询学员
                // 查询二级菜单
                int is = StuPage.fingShow();
                // 查询功能实现
                findAction(is);
                break;
            case 2: // 添加学员
                while (sm.doAddStu(StuPage.getAddStu())) ; // 下方代码块的简便写法

                // Student stuAdd = StuPage.getAddStu();// 获取 一个要添加的学员对象
                // boolean outCome = sm.doAddStu(stuAdd); // 将要添加的学员对象传递给 Model 层
                // while(outCome){
                // Student stuAdd1 = StuPage.getAddStu();
                //     if (!sm.doAddStu(stuAdd1)) {
                //         break;
                //     }
                // }
                break;
            case 3: // 修改学员
                // 获取要修改的学员 ID
                // 输出根据 ID 找到的学员
                ArrayList<Student> serchID = sm.findByID(StuPage.inputID());
                if (!serchID.isEmpty()) {
                    // 输入学员信息
                    // 更新数据到Global.stuList
                    sm.doUpdateStu(StuPage.editStu(serchID));
                }
                break;
            case 4: // 删除学员
                // 获取要删除的学员ID
                int delInputID = StuPage.inputDelID();
                // 搜索学员ID, 有的话就输出然后确认执行删除，没有就返回无
                ArrayList<Student> delStuID = sm.findByID(delInputID);
                if (!delStuID.isEmpty()) {
                    StuPage.showStuList(delStuID);
                    if (StuPage.AreYouOK()) {
                        sm.doDelStu(delInputID);
                    }
                } else {
                    StuPage.failed("要删除的学员信息不存在！~");
                }
                break;
            case 0: // 退出系统
                System.exit(0);
                break;
        }
    }

    /**
     * 显示查询结果
     *
     * @param is 查询方式
     */
    public void findAction(int is) {
        switch (is) {
            case 1: // 查询全部
                // 调用 StuModel.getAll 方法， 读取所有学员信息
                ArrayList<Student> allStudent = sm.findAll();
                // 输出
                StuPage.showStuList(allStudent);
                break;
            case 2: // 学号
                // 获取学号
                int stuID = StuPage.inputID();
                // 通过学号获取学员
                ArrayList<Student> stuIDList = sm.findByID(stuID);
                // 显示学员
                StuPage.showStuList(stuIDList);
                break;
            case 3: // 姓名
                // 获取要查询的姓名
                String stuName = StuPage.inputName();
                // 从集合中查找
                ArrayList<Student> stuNameList = sm.findByName(stuName);
                // 显示查找到的学员
                StuPage.showStuList(stuNameList);
                break;
            case 4: // 性别
                String stuSex = StuPage.inputSex();
                ArrayList<Student> stuSexList = sm.findBySex(stuSex);
                StuPage.showStuList(stuSexList);
                break;
            case 5: // 年龄
                int stuAge = StuPage.inputAge();
                ArrayList<Student> stuAgeList = sm.findByAge(stuAge);
                StuPage.showStuList(stuAgeList);
                break;
            case 6: // 成绩
                float stuScore = StuPage.inputScore();
                ArrayList<Student> stuScoreList = sm.findByScore(stuScore);
                StuPage.showStuList(stuScoreList);
                break;
            case 0: // 返回
                break;
        }
    }
}
